package com.ctshk.rpc.hotel.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value="HotelProductReqReq对象", description="酒店产品")
public class HotelProductReq implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "产品ID")
    private Long id;

    @ApiModelProperty(value = "产品来源")
    private Integer sourceType;

    @ApiModelProperty(value = "所属酒店")
    private Long hotelId;

    @ApiModelProperty(value = "所属房型")
    private Long roomId;

    @ApiModelProperty(value = "产品名称")
    private String name;

    @ApiModelProperty(value = "是否含早")
    private Integer hasBreakfast;

    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "负责人ID")
    private Long chargeId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUser;

    @ApiModelProperty(value = "适用人群ID")
    private Long targetPopulationId;

    @ApiModelProperty(value = "适用人群")
    private String targetPopulation;

    @ApiModelProperty(value = "允许自由行打包")
    private Integer allowPackage;

    @ApiModelProperty(value = "酒店主题JSON")
    private String themeJson;

    @ApiModelProperty(value = "定时开售起始")
    private LocalDate saleBegin;

    @ApiModelProperty(value = "定时开售截至")
    private LocalDate saleEnd;

    @ApiModelProperty(value = "开售时间类型")
    private Integer saleTimeType;

    @ApiModelProperty(value = "是否二次确认")
    private Integer isSecCheck;

    @ApiModelProperty(value = "预订须知")
    private String customerNotice;

    @ApiModelProperty(value = "取消政策")
    private Integer allowRefund;

    @ApiModelProperty(value = "预订服务费类型")
    private Integer reserveChargeType;

    @ApiModelProperty(value = "中旅退改手续费类型")
    private Integer refundChargeType;

    @ApiModelProperty(value = "预订服务费")
    private BigDecimal reserveCharge;

    @ApiModelProperty(value = "中旅退改手续费")
    private BigDecimal refundCharge;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "产品类型")
    private Integer productType;

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "税费及其它费用")
    private BigDecimal taxation;

    @ApiModelProperty(value = "产品状态")
    private Integer status;

    @ApiModelProperty(value = "最低价")
    private BigDecimal minPrice;

    @ApiModelProperty(value = "审批状态")
    private Integer approveStatus;

    @ApiModelProperty(value = "产品编号")
    private String productCode;

    //添加一个审核状态
    @ApiModelProperty(value = "审批状态(0.撤回,1.待审批,2.审批中,3.审批不通过,4.审批通过)")
    private Integer approvalStatus;

    //添加一个售卖状态
    @ApiModelProperty(value = "售卖状态")
    private Integer saleStatus;
//
//    @ApiModelProperty(value = "产品加幅策略")
//    private List<HotelProductStrategyReq> hotelProductStrategyReqList;

    @ApiModelProperty(value = "酒店产品预订信息")
    private HotelProductReservationSettingsDataReq hotelProductReservationSettingsDataReq;

    @ApiModelProperty(value = "酒店产品成本信息")
    private List<HotelProductCostAddReq> hotelProductCostDataReqs;
}
